Skip to content

fix: retain native debug symbols#988

Merged
ovitrif merged 22 commits into
masterfrom
fix/sigabrt-crash-982
Jun 18, 2026
Merged

fix: retain native debug symbols#988
ovitrif merged 22 commits into
masterfrom
fix/sigabrt-crash-982

Conversation

@ovitrif

@ovitrif ovitrif commented Jun 3, 2026

Copy link
Copy Markdown
Collaborator

Refs #982

Related

Description

This PR fixes the native crash symbolication path without bloating the app download.

  • Consumes stripped Rust Android packages:
    • com.synonym:bitkit-core-android:0.1.73
    • com.synonym:ldk-node-android:0.7.0-rc.51
    • com.synonym:vss-client-android:0.5.20
  • Keeps Android on the existing com.synonym:paykit-android:0.1.0-rc8 package for now. pubky/paykit-rs#54 prepares Paykit symbols upstream, but Android is intentionally not consuming that newer Paykit package in this PR because Paykit is not user-facing yet and the app integration update should land separately.
  • Resolves the consumed dependencies' separate native-debug-symbols classifier artifacts during just release.
  • Merges those upstream symbol zips into app/build/outputs/native-debug-symbols/mainnetRelease/native-debug-symbols-182.zip for Play Console and GitHub release uploads.
  • Includes native-debug-symbols-182.zip in both public and internal release workflow artifacts, with SHA256SUMS.txt, so release managers can keep the exact symbol archive from the release build.
  • Keeps Android-side guards so release builds fail if the required upstream symbol artifacts are missing, if duplicate upstream symbol entries would overwrite each other, or if the final archive would be created from stripped packaged .so files.
  • Keeps the app runtime artifacts stripped; the large DWARF/debug payload lives only in symbol archives.

Upstream package publication runs consumed by Android:

  • synonymdev/bitkit-core: 27626818150
  • synonymdev/ldk-node: 27703694826
  • synonymdev/vss-rust-client-ffi: 27703652412

Prepared upstream but not consumed by Android yet:

Preview

N/A

QA Notes

Passed locally on this rebased head:

  • actionlint .github/workflows/release.yml .github/workflows/release-internal.yml
  • sh -n scripts/create-native-debug-symbols.sh
  • GITHUB_TOKEN=$GITHUB_PAT just release
  • GITHUB_TOKEN=$GITHUB_PAT just compile
  • GITHUB_TOKEN=$GITHUB_PAT just test
  • GITHUB_TOKEN=$GITHUB_PAT just lint
  • git diff --check

Previously passed locally for this PR chain:

  • scripts/create-native-debug-symbols.sh
  • ./gradlew --no-daemon testDevDebugUnitTest --tests to.bitkit.build.NativeReleaseConfigTest

Artifact proof:

  • Remote POM/AAR/native-debug-symbols classifier URLs return HTTP 200 for bitkit-core, ldk-node, and vss-rust-client-ffi at the versions consumed by Android.
  • Downloaded remote AARs for bitkit-core, ldk-node, and vss-rust-client-ffi contain no .debug_* sections in packaged Rust .so files.
  • just release produced app/build/outputs/bundle/mainnetRelease/bitkit-mainnet-release-182.aab at 89,123,089 bytes.
  • just release produced app/build/outputs/native-debug-symbols/mainnetRelease/native-debug-symbols-182.zip at 315,939,504 bytes.
  • The built AAB contains stripped libbitkitcore.so, libldk_node.so, and libvss_rust_client_ffi.so files for arm64-v8a and armeabi-v7a, with no .debug_info sections.
  • The native debug symbols archive contains .debug_info DWARF metadata for libbitkitcore.so, libldk_node.so, and libvss_rust_client_ffi.so for both arm64-v8a and armeabi-v7a.
  • The native debug symbols archive intentionally does not contain libpaykit.so yet.

@ovitrif ovitrif changed the title fix: bump bitkit-core dependency fix: address prod sigabrt #982 Jun 3, 2026
@ovitrif ovitrif self-assigned this Jun 3, 2026
@ovitrif ovitrif added this to the 2.3.0 milestone Jun 3, 2026
@ovitrif ovitrif changed the title fix: address prod sigabrt #982 fix: native code abort signal crash Jun 3, 2026
@ovitrif ovitrif force-pushed the fix/sigabrt-crash-982 branch 2 times, most recently from f64bc5a to 008aa9c Compare June 3, 2026 22:44
@ovitrif ovitrif changed the title fix: native code abort signal crash chore: retain native debug symbols Jun 3, 2026
@ovitrif ovitrif marked this pull request as draft June 3, 2026 22:50
@ovitrif ovitrif mentioned this pull request Jun 3, 2026
3 tasks
@ovitrif ovitrif requested review from ben-kaufman and piotr-iohk June 4, 2026 13:18
@ovitrif ovitrif changed the title chore: retain native debug symbols fix: create native symbols zip Jun 4, 2026
@ovitrif ovitrif marked this pull request as ready for review June 4, 2026 14:19
chatgpt-codex-connector[bot]

This comment was marked as resolved.

@ovitrif ovitrif changed the title fix: create native symbols zip fix: native code abort signal crash Jun 4, 2026
@ovitrif

This comment was marked as outdated.

ben-kaufman

This comment was marked as resolved.

@ovitrif ovitrif modified the milestones: 2.3.0, 2.4.0 Jun 4, 2026
@ovitrif ovitrif marked this pull request as draft June 4, 2026 18:08
@ovitrif

This comment was marked as outdated.

chatgpt-codex-connector[bot]

This comment was marked as resolved.

@synonymdev synonymdev deleted a comment from chatgpt-codex-connector Bot Jun 5, 2026
@ovitrif ovitrif changed the title fix: native code abort signal crash fix: retain native debug symbols Jun 5, 2026
@ovitrif ovitrif requested a review from ben-kaufman June 9, 2026 21:05
@ovitrif ovitrif force-pushed the fix/sigabrt-crash-982 branch from 01d9b88 to 4cd95d1 Compare June 17, 2026 17:21

@ovitrif ovitrif left a comment

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

self-reviewed and tested

@piotr-iohk piotr-iohk deployed to release-internal June 18, 2026 10:58 — with GitHub Actions Active

@ben-kaufman ben-kaufman left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good after re-audit.

@ovitrif ovitrif merged commit 7c960a9 into master Jun 18, 2026
42 of 46 checks passed
@ovitrif ovitrif deleted the fix/sigabrt-crash-982 branch June 18, 2026 11:58
@piotr-iohk

Copy link
Copy Markdown
Collaborator

So, release-internal produces native-debug-symbols.zip which is ~320MB, hope that's all right. https://github.com/synonymdev/bitkit-android/actions/runs/27754787963/job/82113826121

@ovitrif

ovitrif commented Jun 18, 2026

Copy link
Copy Markdown
Collaborator Author

So, release-internal produces native-debug-symbols.zip which is ~320MB, hope that's all right. synonymdev/bitkit-android/actions/runs/27754787963/job/82113826121

Should normally be ok, was investigated on local release artifacts 👍🏻

I tried to already use it for de-symbolication of the existing crash "PCs" but according to AI it will only work when the APK/AAB is produced from same sources as the native-debug-symbols.zip, so it's only going to be useful in future release to debug.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants